package main

import (
	"fmt"
	"sync"
)

// 在高并发的场景下也只会被执行一次，例如只加载一次配置文件等

var loadOne sync.Once

func main() {
	for i := 0; i < 10; i++ {
		f := func() {
			fmt.Println(i)
		}
		loadOne.Do(f) // 只会执行一次,所以只打印个0
		//fmt.Println(i)
	}
}
